home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 7 / Gekikoh Dennoh Club Vol. 7 (Japan).7z / Gekikoh Dennoh Club Vol. 7 (Japan) (Track 01).bin / games / otoko / source.lzh / FuncEffect / blaser.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-14  |  984 b   |  62 lines

  1. #include <xsp2lib.h>
  2.  
  3. #include "../otoko.h"
  4. #include "../player.h"
  5. #include "../effect.h"
  6. #include "../priority.h"
  7. #include "../damage.h"
  8.  
  9. #define PALET_BLASER    0x0300
  10.  
  11. static short EffectMoveBLaser (EFFECT *);
  12.  
  13.  
  14. void EffectInitBLaser (EFFECT * p)
  15. {
  16.     p->pt = obj_blaser;
  17.     p->info = PALET_BLASER | PRIORITY_BOMBER;
  18.     p->seq = 0;
  19.     p->seq2 = 0;
  20.     p->func_effect_move = EffectMoveBLaser;
  21. }
  22.  
  23.  
  24.  
  25. static short EffectMoveBLaser (EFFECT * p)
  26. {
  27.     /* プレイヤーが死んだらレーザーも消す */
  28.     if (player->seq == PLAYER_SEQ_DEAD)
  29.         return (-1);
  30.  
  31.     switch (p->seq++) {
  32.     case 2:
  33.     case 4:
  34.     case 6:
  35.     case 8:
  36.     case 10:
  37.         p->pt++;
  38.         break;
  39.     case PLAYER_BLASER_END - 10:
  40.     case PLAYER_BLASER_END - 8:
  41.     case PLAYER_BLASER_END - 6:
  42.     case PLAYER_BLASER_END - 4:
  43.     case PLAYER_BLASER_END - 2:
  44.         p->pt--;
  45.         break;
  46.     case PLAYER_BLASER_END:
  47.         return (-1);
  48.         break;
  49.     default:
  50.         break;
  51.     }
  52.  
  53.     p->seq2++;
  54.     if (p->seq2 > 15)
  55.         p->seq2 = 0;
  56.     p->x = player->x;
  57.     p->y = player->y - 16 + p->seq2;
  58.     xobj_set_st (p);
  59.  
  60.     return (0);
  61. }
  62.